From: Marco Trevisan (TreviƱo) Date: Thu, 10 Sep 2026 12:17:18 +0000 (+0200) Subject: keyboard: Properly use modifier keys as a Map X-Git-Tag: archive/raspbian/50.5-1+rpi1^2~6^2^2~17 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ac2fb580fee9adf966d2ba3195e7cf067ac2eada;p=gnome-shell.git keyboard: Properly use modifier keys as a Map Modifier keys was initialized as a JS Map, but then we used it using the Object API, attaching data to a map rather than using the actual Map features Fixes: 2920738d ("keyboard: Add/handle "modifier" action keys") Part-of: (cherry picked from commit d84ea6c3b45adcea8649a67a946292ea857d807a) --- diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index 42fae6a56..80f54d1a1 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -1536,9 +1536,9 @@ export const Keyboard = GObject.registerClass({ } if (key.action === 'modifier') { - const modifierKeys = this._modifierKeys[key.keyval] || []; + const modifierKeys = this._modifierKeys.get(key.keyval) ?? []; modifierKeys.push(button); - this._modifierKeys[key.keyval] = modifierKeys; + this._modifierKeys.set(key.keyval, modifierKeys); } if (key.action || key.keyval) @@ -1559,7 +1559,7 @@ export const Keyboard = GObject.registerClass({ else this._modifiers.delete(keyval); - for (const key of this._modifierKeys[keyval]) + for (const key of this._modifierKeys.get(keyval)) key.setLatched(enabled); }